home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4810 / 4810.xpi / chrome / speeddial.jar / content / additionalStyle.js next >
Encoding:
Text File  |  2010-01-31  |  7.0 KB  |  214 lines

  1. var addDialBundle;
  2. var fontArray;
  3.  
  4. function Startup() {
  5.   addDialBundle = document.getElementById("bundle_editDial");
  6.   
  7.   var backgroundImageStyle = window.arguments[0];
  8.   var advancedStyle = window.arguments[1];
  9.   var font = window.arguments[2];
  10.   
  11.   // decode them
  12.   if (backgroundImageStyle != '') {
  13.     var styleParts = backgroundImageStyle.split('#');
  14.     document.getElementById("imageLocation").value = styleParts[0];
  15.  
  16.     // Horizontal position
  17.     if (styleParts[1] == 'l') {
  18.       document.getElementById("horizontalPosition").selectedIndex = 1;
  19.     } else if (styleParts[1] == 'r') {
  20.       document.getElementById("horizontalPosition").selectedIndex = 2;
  21.     }
  22.     
  23.     // Vertical position
  24.     if (styleParts[2] == 't') {
  25.       document.getElementById("verticalPosition").selectedIndex = 1;
  26.     } else if (styleParts[2] == 'b') {
  27.       document.getElementById("verticalPosition").selectedIndex = 2;
  28.     }
  29.     
  30.     // Repeat background
  31.     if (styleParts[3] == 'h') {
  32.       document.getElementById("repeatBackground").selectedIndex = 1;
  33.     } else if (styleParts[3] == 'v') {
  34.       document.getElementById("repeatBackground").selectedIndex = 2;
  35.     } else if (styleParts[3] == 'b') {
  36.       document.getElementById("repeatBackground").selectedIndex = 3;
  37.     }
  38.     
  39.     document.getElementById("backgroundImage").checked = true;
  40.   }
  41.   if (advancedStyle != '') {
  42.     document.getElementById("advancedStyleBox").value = advancedStyle;
  43.     document.getElementById("advancedStyle").checked = true;
  44.   }
  45.   
  46.   var fontEnumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"].getService(Components.interfaces.nsIFontEnumerator);
  47.   var totalFonts = {};
  48.   var defaultFont;
  49.   var popup = document.getElementById("fontTypePopup");
  50.   fontArray = fontEnumerator.EnumerateAllFonts(totalFonts);
  51.   
  52.   for (var c=0; c<totalFonts.value; c++) {
  53.     var newItem = document.createElement("menuitem");
  54.     newItem.setAttribute("label", fontArray[c]);
  55.     popup.appendChild(newItem);
  56.   }
  57.   if (font != '') {
  58.     var fontParts = font.split('#');
  59.     defaultFont = fontParts[0];
  60.     document.getElementById("fontSize").value = fontParts[1];
  61.     if (fontParts[2] > 0) {
  62.       document.getElementById("fontBold").checked = true;
  63.     }
  64.     if (fontParts[3] > 0) {
  65.       document.getElementById("fontItalic").checked = true;
  66.     }
  67.     document.getElementById("font").checked = true;
  68.   } else {
  69.     var labelFontStyle = document.defaultView.getComputedStyle(document.getElementById("fontTypeLabel"),null);
  70.     defaultFont = labelFontStyle.getPropertyValue("font-family");
  71.   }
  72.  
  73.   // Set default font
  74.   var foundFont = false;
  75.   var foundFontIndex = 0;
  76.   for (var c=0; (c<totalFonts.value)&&!foundFont; c++) {
  77.     if (fontArray[c] == defaultFont) {
  78.       foundFontIndex = c;
  79.       foundFont = true;
  80.     }
  81.   }
  82.   document.getElementById("fontType").selectedIndex = foundFontIndex;
  83.   
  84.   advancedStyleChanged();
  85.   backgroundImageChanged();
  86.   fontChanged();
  87. }
  88.  
  89. function onOK(event) {
  90.   // refresh the fields!
  91.   var backgroundImageStyle = '';
  92.   var advancedStyle = '';
  93.   var font = '';
  94.  
  95.   if (document.getElementById("backgroundImage").checked) {
  96.     backgroundImageStyle = document.getElementById("imageLocation").value + '#';
  97.     
  98.     switch (document.getElementById("horizontalPosition").selectedIndex) {
  99.       case 0:
  100.         backgroundImageStyle += 'c';
  101.         break;
  102.       case 1:
  103.         backgroundImageStyle += 'l';
  104.         break;
  105.       case 2:
  106.         backgroundImageStyle += 'r';
  107.         break;
  108.     }
  109.     
  110.     backgroundImageStyle += '#';
  111.     
  112.     switch (document.getElementById("verticalPosition").selectedIndex) {
  113.       case 0:
  114.         backgroundImageStyle += 'c';
  115.         break;
  116.       case 1:
  117.         backgroundImageStyle += 't';
  118.         break;
  119.       case 2:
  120.         backgroundImageStyle += 'b';
  121.         break;
  122.     }
  123.     
  124.     backgroundImageStyle += '#';
  125.     
  126.     switch (document.getElementById("repeatBackground").selectedIndex) {
  127.       case 0:
  128.         backgroundImageStyle += 'n';
  129.         break;
  130.       case 1:
  131.         backgroundImageStyle += 'h';
  132.         break;
  133.       case 2:
  134.         backgroundImageStyle += 'v';
  135.         break;
  136.       case 3:
  137.         backgroundImageStyle += 'b';
  138.         break;
  139.     }
  140.   }
  141.   
  142.   if (document.getElementById("advancedStyle").checked) {
  143.     advancedStyle = document.getElementById("advancedStyleBox").value;
  144.   }
  145.   
  146.   if (document.getElementById("font").checked) {
  147.     font = fontArray[document.getElementById("fontType").selectedIndex];
  148.     font += '#';
  149.     font += document.getElementById("fontSize").value;
  150.     font += '#';
  151.     if (document.getElementById("fontBold").checked) {
  152.       font += '1';
  153.     } else {
  154.       font += '0';
  155.     }
  156.     font += '#';
  157.     if (document.getElementById("fontItalic").checked) {
  158.       font += '1';
  159.     } else {
  160.       font += '0';
  161.     }
  162.   }
  163.  
  164.   
  165.   window.opener.processAdditionalStyleOutput(backgroundImageStyle, advancedStyle, font);
  166.   return true;
  167. }
  168.  
  169. function onCancel(event) {
  170.   // Do nothing
  171.   
  172.   return true;
  173. }
  174.  
  175. function backgroundImageChanged() {
  176.   var backgroundImageCheckbox = document.getElementById("backgroundImage");
  177.   document.getElementById("imageLocationLabel").disabled = !backgroundImageCheckbox.checked;
  178.   document.getElementById("imageLocation").disabled = !backgroundImageCheckbox.checked;
  179.   document.getElementById("chooseFileButton").disabled = !backgroundImageCheckbox.checked;
  180.   document.getElementById("horizontalPositionLabel").disabled = !backgroundImageCheckbox.checked;
  181.   document.getElementById("horizontalPosition").disabled = !backgroundImageCheckbox.checked;
  182.   document.getElementById("verticalPositionLabel").disabled = !backgroundImageCheckbox.checked;
  183.   document.getElementById("verticalPosition").disabled = !backgroundImageCheckbox.checked;
  184.   document.getElementById("repeatBackgroundLabel").disabled = !backgroundImageCheckbox.checked;
  185.   document.getElementById("repeatBackground").disabled = !backgroundImageCheckbox.checked;
  186. }
  187.  
  188. function advancedStyleChanged() {
  189.   var advancedStyleCheckbox = document.getElementById("advancedStyle");
  190.   document.getElementById("advancedStyleBox").disabled = !advancedStyleCheckbox.checked;
  191. }
  192.  
  193. function fontChanged() {
  194.   var fontCheckbox = document.getElementById("font");
  195.   document.getElementById("fontTypeLabel").disabled = !fontCheckbox.checked;
  196.   document.getElementById("fontType").disabled = !fontCheckbox.checked;
  197.   document.getElementById("fontSizeLabel").disabled = !fontCheckbox.checked;
  198.   document.getElementById("fontSize").disabled = !fontCheckbox.checked;
  199.   document.getElementById("fontBold").disabled = !fontCheckbox.checked;
  200.   document.getElementById("fontItalic").disabled = !fontCheckbox.checked;
  201. }
  202.  
  203. function showFileBrowser() {
  204.   var nsIFilePicker = Components.interfaces.nsIFilePicker;
  205.   var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
  206.   fp.init(window, addDialBundle.getString("selectFile"), nsIFilePicker.modeOpen);
  207.   fp.appendFilters(nsIFilePicker.filterImages);
  208.   fp.appendFilters(nsIFilePicker.filterAll);
  209.   var res = fp.show();
  210.   if (res == nsIFilePicker.returnOK){
  211.     document.getElementById("imageLocation").value = fp.fileURL.spec;
  212.   }
  213. }
  214.